import tkinter as tk
from tkinter import ttk, messagebox
from admin_framework import AdminFramework
from form_component import FormComponent

class TS2MP4App(AdminFramework):
    def __init__(self):
        super().__init__('TS转MP4工具')
        
    def create_menu(self):
        """
        重写父类的菜单创建方法
        添加TS转MP4专用菜单
        注意：此方法只处理菜单按钮，其他UI元素继续使用父类实现
        """
        # 清空原有菜单按钮
        for widget in self.menu_frame.winfo_children():
            widget.destroy()
            
        # 添加TS转MP4专用菜单
        ttk.Button(self.menu_frame, text='TS转MP4', command=self.show_converter).pack(pady=5)
        ttk.Button(self.menu_frame, text='批量处理', command=self.show_batch_process).pack(pady=5)
        
    def init_ui(self):
        # 调用父类的init_ui方法以继承基础布局
        super().init_ui()
        
        
        
        # 创建内容区域
        content_container = ttk.Frame(self.main_frame)
        content_container.pack(fill='both', expand=True)
        
        self.content_frame = ttk.Frame(content_container)
        self.content_frame.pack(fill='both', expand=True)
        
        # 默认显示转换界面
        self.show_converter()
    
    def show_converter(self):
        # 清空内容区域
        for widget in self.content_frame.winfo_children():
            widget.destroy()
            
        # 创建转换界面
        defaults = {
            'input_file': '',
            'output_file': '',
            'codec': 'libx264',
            'crf': '23'
        }
        
        form = FormComponent(self.content_frame, defaults)
        form.file('input_file', '输入TS文件')
        form.file('output_file', '输出MP4文件')
        form.text('codec', '视频编码')
        form.text('crf', 'CRF值(0-51)')
        form.create_form()
        
        def on_submit():
            data = form.get_data()
            # 这里添加实际的TS转MP4逻辑
            self.log_message(f"开始转换: {data['input_file']} -> {data['output_file']}")
            messagebox.showinfo('提示', '转换完成!')
            
        form.submit(on_submit)
    
    def show_batch_process(self):
        # 清空内容区域
        for widget in self.content_frame.winfo_children():
            widget.destroy()
            
        # 创建批量处理界面
        defaults = {
            'input_dir': '',
            'output_dir': '',
            'codec': 'libx264',
            'crf': '23'
        }
        
        form = FormComponent(self.content_frame, defaults)
        form.dir('input_dir', '输入目录')
        form.dir('output_dir', '输出目录')
        form.text('codec', '视频编码')
        form.text('crf', 'CRF值(0-51)')
        form.create_form()
        
        def on_submit():
            data = form.get_data()
            # 这里添加实际的批量处理逻辑
            self.log_message(f"开始批量处理: {data['input_dir']} -> {data['output_dir']}")
            messagebox.showinfo('提示', '批量处理完成!')
            
        form.submit(on_submit)

if __name__ == '__main__':
    app = TS2MP4App()
    app.run()